import os
import random
import time

from django.conf import settings
from content.models import Goods  # 替换成你应用的名字


def test(path):
    # 开始
    # 获取 media 文件夹路径
    keyword = ''
    if path == '小米':
        images_path = os.path.join(settings.MEDIA_ROOT, 'images', 'xiaomi')
        keyword = 'xiaomi'
    elif path == '华为':
        images_path = os.path.join(settings.MEDIA_ROOT, 'images', 'huawei')
        keyword = 'huawei'
    elif path == '苹果':
        images_path = os.path.join(settings.MEDIA_ROOT, 'images', 'apple')
        keyword = 'apple'

    # 获取所有图片文件，假设图片格式为 'name_price.jpg'
    image_files = [f for f in os.listdir(images_path) if f.endswith('.jpg')]
    # 去除所有空格
    image_files = [f.replace(' ', '').replace('.jpg', '') for f in image_files]
    goods_data = []
    i = 0
    # 创建一个列表来存储所有的 Goods 实例len(image_files)
    goods_instances = []
    # print('images_files', image_files)
    while i < len(image_files):
        # 按顺序遍历图片文件
        image_file = image_files[i % len(image_files)]  # 如果图片文件数量少于 1000，使用取余来重复
        # 提取图片名称和价格
        try:
            div_1 = image_file.split('_')
            name = div_1[1]
            price = div_1[-1]
        except:
            print('异常抛出：',image_file, i)
            time.sleep(1000)

        price = float(price)  # 转换为浮动数字
        # 根据价格判断设备的类别
        if price <= 2000:
            category = '低端机'
        elif 2000 < price <= 5000:
            category = '中端机'
        else:
            category = '高端机'

        # 检查是否是重复数据，如果重复则加上 _i 后缀
        if (name, price) in goods_data:
            count = goods_data.count((name, price)) + 1
            name = f"{name}_{count}"
        goods_data.append((name, price))
        # print('image_file', image_file)
        # 创建商品记录实例并添加到列表
        goods_instances.append(
            Goods(
                name=name,
                price=price,
                images=f'images/{keyword}/{image_file}.jpg',  # 假设图片路径存储为相对路径
                description=name,
                rating=random.uniform(1, 5),  # 随机生成评分
                is_recommended=random.choice([True, False]),  # 随机推荐状态
                category=category  # 添加类别字段

            )
        )

        i += 1  # 增加索引，继续下一个商品
    print('test:',goods_instances)
    # 使用 bulk_create 一次性提交所有商品记录
    Goods.objects.bulk_create(goods_instances)
